package com.chart.web.controller.chart;

import com.chart.chart.domian.vo.ChartColorsVO;
import com.chart.common.core.domain.AjaxResult;
import com.chart.system.service.ChartColorService;
import com.chart.web.controller.chart.dto.ChartColorDTO;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

import static com.chart.framework.datasource.DynamicDataSourceContextHolder.log;

/**
 * 颜色新增表
 */
@RestController
@RequestMapping("/color")
@Data
public class ChartColorController {

    @Autowired
    private ChartColorService chartColorService;

    /**
     * 颜色上传
     * @param colorCode
     * @return
     */
    @PostMapping("/saveColors")
    public AjaxResult saveColors(@RequestBody ChartColorDTO colorCode) {
        List<String> colorCodes = colorCode.getColorCodes();

        // 校验颜色列表是否为空
        if (colorCodes == null || colorCodes.isEmpty()) {
            log.warn("上传的颜色为空，操作中止");
            return AjaxResult.warn("上传的颜色为空，请重新上传!");
        }

        // 把数组的内容修改为字符串逗号分隔
        String colorCodesStr = String.join(",", colorCodes);
        // 调用保存方法
        return chartColorService.saveColors(colorCodesStr);
    }



    /**
     * ChartColorsVO
     * 根据用户ID查询颜色
     */
    @GetMapping("/queryColors")
    public AjaxResult queryColors() {
        return chartColorService.queryColors();
    }

    /**
     * 修改用户保存的颜色
     *
     * @return
     */
    @PostMapping("/updateColors")
    private AjaxResult updateColors(@RequestBody ChartColorDTO colorCode) {
        List<String> colorCodes = colorCode.getColorCodes();
        if (colorCodes.isEmpty()) {
            log.warn("上传的颜色为空，操作中止");
        }
        // 把数组的内容修改为字符串逗号分隔["#ff1580", "#fc10be", "#000000", "#fc10be", "#fc10be", "#fc10be"]
        // 修改为"#FF5733,#33FF57,#3357FF"格式
        String colorCodesStr = String.join(",", colorCodes);
        return chartColorService.updateColors(colorCodesStr);
    }




}
